Reference
- Kaggle 홈페이지 - Kaggle
- 9강 ‘Loops and List Comprehensions’ - Python Micro-Course Home Page
영어 실력이 부족하여 문맥이 이해가 가지 않는 부분은 원문을 참고하시길 바랍니다…
언젠가는 실력이 나아지기를…
반복문(Loops)
Loop는 반복적으로 코드를 실행해야 할 때 사용됩니다. 아래는 예제입니다:
for
반복문에는
- 사용할 변수 이름 (이 경우
planet
) - 반복할 값들의 집합 (이 경우
planets
)
“in
“ 이라는 단어를 사용하여 함께 연결합니다.
“in
“의 오른쪽에는 반복에 사용될 수 있다면 어떠한 객체라도 올 수 있습니다. 대체적으로 어떠한 그룹으로 생각될 수만 있다면 반복문에 사용될 수 있습니다.
range()
range()
는 일련의 연속적인 숫자들을 반환하는 함수입니다. 이는 반복문을 작성하는데 매우 유용합니다.
예를 들어, 우리가 어떤 행동을 5번 반복하고자 한다면 아래와 같이 작성하면 됩니다:
while loops
파이썬에는 또 다른 반복문으로 특정 조건을 만족할 때까지 반복하는 while
이 있습니다.
while
반복문의 인자는 boolean 문으로 평가되고, False로 평가 될 때까지 반복문이 실행됩니다.
리스트 내포(List Comprehensions)
리스트 컴프리핸션 이라고 영문 그대로 읽는 경우가 더 많은 것 같습니다…
리스트 내포는 파이썬에서 가장 사랑받고 독특한 특징 중 하나입니다. 자잘한 설명보다는 그냥 몇 가지 예제들을 보는 것이 보다 이해하기 쉬울 것 같습니다.
if
조건을 추가 할 수도 있습니다:
(SQL에 익숙하신 분이라면, “WHERE” 절과 비슷하다고 느끼셨을 겁니다.)
다음은 if
조건으로 필터링하고 loop 변수에 일부 변환을 적용하는 예제입니다:
표현식의 왼쪽에는 꼭 반복문의 변수를 포함할 필요가 없습니다(하지만 이런 경우는 매우 드뭅니다). 아래의 표현식이 어떤 결과를 출력할까요? “output” 탭을 눌러서 확인해 보세요.
[32 for planet in planets] |
[32, 32, 32, 32, 32, 32, 32, 32] |
min
, max
및 sum
과 같은 기능과 LC가 함께 사용되면 여러 줄로 작성된 코드를 한 줄의 매우 인상적인 코드로 표현할 수 있습니다.
위 3가지 방법 중 어떤 것이 “최고의” 방법인지는 매우 주관적입니다. 보다 적은 코드로 문제를 해결하는 것이 항상 좋은 일이지만, The Zen of Python에 적힌 다음 내용을 기억해 두는 것이 좋습니다.
- Readability counts. 가독성이 중요합니다.
- Explicit is better than implicit. 명확한 것이 암시적인 것보다 낫습니다.
이러한 도구들을 사용하여 읽기 쉽고 간결한 프로그램을 짜도록 합시다. 하지만 둘 중 하나를 골라야하는 상황이 온다면, 다른 사람들이 읽고 이해하기 쉬운 코드를 짜는 것을 선호하도록 합시다.
연습문제(Your Turn)
loops and list comprehensions 예제